package com.tiancheng.trade.merchant.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tiancheng.trade.merchant.model.Product;
import com.tiancheng.trade.merchant.vo.product.FindProductPageListVO;
import com.tiancheng.trade.merchant.vo.product.OpenDeleteProductVO;
import com.tiancheng.trade.merchant.vo.product.ProductExpVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface ProductMapper extends MYBaseMapper<Product> {

    /**
     * 查询产品信息总数
     *
     * @return
     */
    int countList(FindProductPageListVO merchantVO);

    /**
     * 查询产品信息
     *
     * @return
     */
    IPage<Product> findPageList(Page<?> page, @Param("vo") FindProductPageListVO merchantVO);

    List<Product> findPageList(@Param("vo") FindProductPageListVO merchantVO);

    List<Product> findPaymentChannelByProductCodes(@Param("list") List<String> strList);

    /**
     * 根据业务侧产品编码查询支付渠道
     *
     * @param strList
     * @return
     */
    List<Product> findPayChannelByCodeBusiness(@Param("list") List<String> strList);

    /**
     * 查询产品信息导出
     *
     * @return
     */
    List<ProductExpVO> getProductExport(@Param("vo") FindProductPageListVO merchantVO);

    /**
     * 批量保存商品
     * @param products
     * @return
     */
    int saveBatch(List<Product> products);

    void deleteOpenBatch(@Param("list") List<OpenDeleteProductVO.Product> products);
}
